home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / METRICS.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1995-04-21  |  3.5 KB  |  137 lines

  1. 10  'METRICS - 21 AUG 86  rev. 21 APR 95
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  CLS:KEY OFF:SCREEN 0
  4. 40  COLOR 7,0,5
  5. 50  DIM A$(38,3)
  6. 60  U$=STRING$(80,205)
  7. 70  RESTORE:GOTO 130
  8. 80  '
  9. 90  'ERASE LINE
  10. 100  LOCATE 23:PRINT STRING$(80," ");:LOCATE 23
  11. 110  RETURN
  12. 120  '
  13. 130  '.....start
  14. 140  N=38                                   'NUMBER OF DATA GROUPS
  15. 150  FOR X=1 TO N:FOR Y=1 TO 3
  16. 160  READ A$(X,Y)
  17. 170  NEXT Y:NEXT X
  18. 180  '
  19. 190  '.....menu
  20. 200  CLS:COLOR 15,1
  21. 210  PRINT " METRIC CONVERTER";TAB(61);"by George C. Murphy ";
  22. 220  COLOR 5,0:PRINT STRING$(80,223);
  23. 230  COLOR 7,0
  24. 240  PRINT " Press number in < > for desired conversion":PRINT U$;
  25. 250  PRINT "  < 1 >  Imperial to Metric"
  26. 260  PRINT "  < 2 >  Metric to Imperial"
  27. 270  PRINT U$;
  28. 280  PRINT "  < 0 >  EXIT"
  29. 290  Z$=INKEY$
  30. 300  IF Z$="1"THEN A=1:B=2:C=0:GOTO 360
  31. 310  IF Z$="2"THEN A=2:B=1:C=1:GOTO 360
  32. 320  IF Z$="0"THEN CLS:RUN EX$
  33. 330  GOTO 290
  34. 340  '
  35. 350  '.....print menu
  36. 360  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  37. 370  LOCATE 2,39:PRINT "CALL"
  38. 380  LOCATE 3:FOR Z=1 TO 19
  39. 390  N1$="("+CHR$(Z+96)+")":N2$="("+CHR$(Z+115)+")"
  40. 400  IF Z>7 THEN N2$="("+CHR$(Z+40)+")"
  41. 410  IF Z=18 THEN N2$="(-)"
  42. 420  IF Z=19 THEN N2$="(=)"
  43. 430  COLOR 0,7:PRINT N1$;:COLOR 7,0
  44. 440  PRINT TAB(5)A$(Z,A);TAB(20)"to  ";A$(Z,B);
  45. 450  PRINT TAB(39);"CALL";
  46. 460  LOCATE CSRLIN,41:COLOR 0,7:PRINT N2$;:COLOR 7,0
  47. 470  PRINT TAB(46)A$(Z+19,A);TAB(61)"to  ";A$(Z+19,B)
  48. 480  NEXT Z:PRINT U$;
  49. 490  LOCATE CSRLIN-1,39:PRINT "STEP"
  50. 500  '
  51. 510  GOSUB 90
  52. 520  PRINT "Press character in ";:COLOR 0,7:PRINT "( )";
  53. 530  COLOR 7,0:PRINT " for required conversion..."
  54. 540  Z$=INKEY$:IF Z$=""THEN 540
  55. 550  IF Z$="-"THEN Q=133:GOTO 590
  56. 560  IF Z$="="THEN Q=134:GOTO 590
  57. 570  Q=ASC(Z$)
  58. 580  IF Q>=48 AND Q<=57 OR Q>=96 AND Q<=122 THEN X=Q:GOTO 590 ELSE 540
  59. 590  GOSUB 90
  60. 600  X=Q-96:IF X<0 THEN X=Q-21
  61. 610  Y=VAL (A$(X,3))
  62. 620  IF C=1 THEN Y=1/Y
  63. 630  PRINT "ENTER: How many ";A$(X,A);:INPUT H
  64. 640  T=H*Y
  65. 650  A$=A$(X,A):B$=A$(X,B)
  66. 660  IF Y<>1 THEN 800            'Y=1 is flag for temperature conversion only
  67. 670  '
  68. 680  '.......temperature
  69. 690  F$=CHR$(248)+"F"
  70. 700  C$=CHR$(248)+"C"
  71. 710  IF A$(X,A)="fahrenheit"THEN T=(H-32)/1.8:A$=F$:B$=C$
  72. 720  IF A$(X,A)="celsius"THEN T=1.8*H+32:A$=C$:B$=F$
  73. 730  T=INT(T*10+0.5)/10
  74. 740  GOSUB 90
  75. 750  LOCATE CSRLIN-1,39:COLOR 7,0:PRINT "INSTR"
  76. 760  COLOR 1,2
  77. 770  PRINT H;A$;" = ";T;B$;" ":COLOR 7,0
  78. 780  GOTO 880
  79. 790  '
  80. 800  '.....display answer
  81. 810  IF T<1 THEN USIN$=".####":GOTO 830
  82. 820  USIN$=STRING$(LEN(STR$(FIX(T))),"#")+".##"
  83. 830  GOSUB 90
  84. 840  LOCATE CSRLIN-1,39:COLOR 7,0:PRINT "INSTR"
  85. 850  COLOR 15,2
  86. 860  PRINT H;A$;" = ";USING USIN$;T;:PRINT " ";B$;" ":COLOR 7,0
  87. 870  '
  88. 880  PRINT U$;:LOCATE 24,39:PRINT "STEP";
  89. 890  LOCATE 23,39:PRINT "CALL";
  90. 900  LOCATE 23,41:COLOR 15,2
  91. 910  PRINT " Press <1> to continue or <0> for menu  ";
  92. 920  COLOR 7,0
  93. 930  Z$=INKEY$
  94. 940  IF Z$="0"OR Z$="1"THEN LOCATE 24:PRINT STRING$(80," ");:COLOR 7,0
  95. 950  IF Z$="0"THEN 980
  96. 960  IF Z$="1"THEN 510
  97. 970  GOTO 930
  98. 980  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3:ERASE A$:GOTO 40
  99. 990  DATA ounces(weight),grams,28.3495
  100. 1000  DATA lb.,Kg(kilograms),.4535925
  101. 1010  DATA short tons,tonnes,.907185
  102. 1020  DATA long tons,tonnes,1.016047
  103. 1030  DATA fl.oz. (Impl.),ml,28.41167
  104. 1040  DATA fl.oz. (U.S.),ml,29.57285
  105. 1050  DATA pints  (Impl.),litres,.56823
  106. 1060  DATA pints  (U.S.),litres,.47317
  107. 1070  DATA quarts (Impl.),litres,1.13647
  108. 1080  DATA quarts (U.S.),litres,.94633
  109. 1090  DATA gallons(Impl.),litres,4.54596
  110. 1100  DATA gallons(U.S.),litres,3.785329
  111. 1110  DATA inches,mm,25.4
  112. 1120  DATA inches,cm,2.54
  113. 1130  DATA feet,metres,.3048
  114. 1140  DATA yards,metres,.9144
  115. 1150  DATA miles,Km(kilometres),1.609347
  116. 1160  DATA sq.in.,sq.cm,6.452
  117. 1170  DATA sq.ft.,sq.metres,.0929
  118. 1180  DATA sq.yd.,sq.metres,.836
  119. 1190  DATA cu.in.,cu.cm.(c.c.),16.38706
  120. 1200  DATA cu.in.,litres,.0163873
  121. 1210  DATA cu.ft.,cu.metres,.02832
  122. 1220  DATA cu.ft.,litres,28.317
  123. 1230  DATA cu.yd.,cu.metres,.7646
  124. 1240  DATA Acres,Hectares,.4047
  125. 1250  DATA P.S.I.,kPa(kilopascal),6.894757
  126. 1260  DATA P.S.I.,MPa(megapascal),.006894757
  127. 1270  DATA P.S.I.,bar,.068621
  128. 1280  DATA lb/sq.in,Kg/sq.metre,.07030697
  129. 1290  DATA lb/sq.ft,Kg/sq.metre,4.882429
  130. 1300  DATA ft/lb,BTU,778.26
  131. 1310  DATA HP,kW(kilowatt),.7456999
  132. 1320  DATA lb.force,newtons,4.448222
  133. 1330  DATA lb/in,newton-metres,.1129848
  134. 1340  DATA lb/ft,newton-metres,14.5939
  135. 1350  DATA fahrenheit,celsius,1
  136. 1360  DATA in.mercury,KPa,3.408024
  137.